package cn.jbolt.ai.resource.llm.service;

import com.baomidou.mybatisplus.extension.service.IService;
import cn.jbolt.ai.resource.llm.entity.AiResource;
import cn.jbolt.util.Result;

public interface AiResourceService extends IService<AiResource> {

    /**
     * 根据ID获取资源信息
     *
     * @param id 资源ID
     * @return 资源信息
     */
    Result getResourceById(Long id);

    /**
     * 获取所有资源信息
     *
     * @return 所有资源列表
     */
    Result listByPage(Integer page, Integer pageSize, String keywords);

    /**
     * 添加新的资源
     *
     * @param resource 新的资源对象
     * @return 是否添加成功
     */
    Result add(AiResource resource);

    /**
     * 更新资源信息
     *
     * @param resource 需要更新的资源对象
     * @return 是否更新成功
     */
    Result update(AiResource resource);

    /**
     * 删除资源
     *
     * @param id 资源ID
     * @return 是否删除成功
     */
    Result del(Long id);

    /**
     * 修改资源的启用状态
     *
     * @param id   资源ID
     * @param
     * @return 是否修改成功
     */
    Result toggleEnable(Long id);

    /**
     *
     * 注册所有的ai资源,在项目启动的时候调用
     */
    void registerAllResource();

    /**
     * 下拉选获取所有开启的资源所属的类型
     * @return
     */
    Result listAllEnabledType();
}
